package edu.utn.tacs.grupouno.rest.implementations;

import java.util.List;
import java.util.UUID;

import javax.ws.rs.Path;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import edu.utn.tacs.grupouno.dao.AnalisisDAO;
import edu.utn.tacs.grupouno.negocio.Analisis;
import edu.utn.tacs.grupouno.negocio.Estudio;
import edu.utn.tacs.grupouno.negocio.Medico;
import edu.utn.tacs.grupouno.negocio.Paciente;
import edu.utn.tacs.grupouno.rest.api.AnalisisService;

@Service("analisisService")
@Path("/analisis")
public class AnalisisServiceImpl implements AnalisisService {

	private AnalisisDAO dao;
	
	@Override
	public Analisis getAnalisis(String id) {
		return dao.getAnalisis(id);
	}
	
	@Override
	public List<Analisis> getAnalisis() {
		return dao.getAnalisis();
	}

	@Override
	public Paciente getPaciente(String id) {
		return dao.getAnalisis(id).getPaciente();
	}

	@Override
	public Medico getMedico(String id) {
		return dao.getAnalisis(id).getMedico();
	}

	@Override
	public void putAnalisis(String id, Analisis analisis) {
		analisis.setId(UUID.fromString(id));
		dao.saveAnalisis(analisis);
	}

	@Override
	public void deleteAnalisis(String id) {
		dao.deleteAnalisis(id);
	}

	@Override
	public void postAnalisis(Analisis analisis) {
		dao.saveAnalisis(analisis);
	}


	@Override
	public List<Estudio> getEstudios(String id) {
		return dao.getEstudios(id);
	}

	@Override
	public void postEstudio(String id, Estudio estudio) {
		dao.addEstudio(id, estudio);
	}

	@Override
	public void deleteEstudios(String id) {
		dao.deleteEstudios(id);
	}

	@Override
	public void deleteEstudio(String idAnalisis, String idEstudio) {
		dao.deleteEstudio(idAnalisis, idEstudio);
	}
	
	
	@Autowired
	public void setAnalisisDAO(AnalisisDAO dao) {
		this.dao = dao;
	}

}
